SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

CREATE       PROCEDURE [dbo].[wllogerrores_por_proceso]

@fecha_desde _fechahora,
@fecha_hasta _fechahora,
@codproceso_desde _codigo_largo,
@codproceso_hasta _codigo_largo,
@operador_desde _codigo_largo,
@operador_hasta _codigo_largo,
@tipo_error nvarchar(4000)

AS

SET NOCOUNT ON
DECLARE @hdoc int

EXEC sp_xml_preparedocument @hdoc OUTPUT, @tipo_error

SET NOCOUNT OFF

SELECT
	log.cd_proceso,
	log.fe_proceso,
	err.tp_error,
	log.cd_error,
	err.de_error as nm_error,
	log.de_error

FROM 
	wap_log_errores log
	JOIN wap_errores err ON log.cd_error = err.cd_error
	JOIN 
		( SELECT 'A' AS tipo_id, 'Alerta' AS tipo_descripcion
	      UNION
	      SELECT 'X', 'Crítico'
	      UNION
	      SELECT 'I', 'Información') AS tipos 
	ON 
		tipos.tipo_id = err.tp_error
	JOIN OPENXML(@hdoc, '/root/tipo') WITH 
		(tipo_id char(1) '@id') tipos_selec
		ON err.tp_error = tipos_selec.tipo_id
WHERE 
	log.fe_proceso BETWEEN @fecha_desde AND @fecha_hasta 
	AND log.cd_operador BETWEEN @operador_desde AND @operador_hasta 
	AND log.cd_proceso BETWEEN @codproceso_desde AND @codproceso_hasta 

ORDER BY
	
	log.cd_proceso, log.fe_proceso

EXEC sp_xml_removedocument @hdoc


GO
